#pragma once

#include <D3D11.h>

namespace cy_univerX
{
namespace render
{
	class CBlendState;
	class CRasterizerState;

	class CBasicEffect
	{
	public:
		CBlendState			*m_BlendState;
		CRasterizerState	*m_RasterizerState;

		ID3D11VertexShader	*m_VertexShader;
		ID3D11PixelShader	*m_PixelShader;
		ID3D11GeometryShader*m_GeometryShader;
		ID3D11ComputeShader	*m_ComputeShader;
		ID3D11HullShader	*m_HullShader;
		ID3D11DomainShader	*m_DomainShader;

		ID3D11InputLayout	*m_InputLayout;
		ID3D11Buffer		*m_ConstantBuffer;

		CBasicEffect();
		virtual ~CBasicEffect();

		void Apply();
	};

}
}